import cv2
import matplotlib.pyplot as plt

img_cv2_bgr = cv2.imread("../images/lena.png")
print(img_cv2_bgr.shape)
# cv2.imshow("img_cv2_bgr", img_cv2_bgr)
# cv2.waitKey(0)
#
# # 若将cv2读取的图像，使用plt直接输出，可以吗？
# # 可以，但是颜色通道是有问题
# # OpenCV默认读取是 BGR，而matplotlib默认读取显示是 RGB
# plt.imshow(img_cv2_bgr)
# plt.show()
#
# # 需要进行颜色空间的转换 BGR 2 RGB
# img_bgr_rgb = cv2.cvtColor(img_cv2_bgr, cv2.COLOR_BGR2RGB)
# plt.imshow(img_bgr_rgb)
# plt.show()

# 同样还可以转为灰度图  BGR 2 GRAY
img_bgr_gray = cv2.cvtColor(img_cv2_bgr, cv2.COLOR_BGR2GRAY)
print(img_bgr_gray.shape)
cv2.imshow('img_bgr_gray', img_bgr_gray)
cv2.waitKey(0)
# plt.imshow() 默认显示彩色图，若想显示灰度图，需要使用cmap进行映射
plt.imshow(img_bgr_gray, cmap="gray")
plt.show()

"""
opencv 读取的图像 进行转换 使用OpenCV显示是没有任何问题的
但是若想使用matplotlib显示，就需要考虑颜色空间的转换和映射
"""
